package com.sanyou.service;

import com.sanyou.pojo.Project;
import com.sanyou.pojo.ProjectSystem;
import com.sanyou.pojo.vo.ProjectVo;
import com.sanyou.utils.PagedResult;

import java.util.List;

/**
 * User: asus
 * Date: 2021-10-22
 * Time: 23:51
 * Version:V1.0
 */
public interface ProjectService {

    /**
     * 根据用户id查询项目列表
     * @param userId
     * @return
     */
    List<ProjectVo> getProjectList(String userId);

    /**
     * 新增项目
     * @param project
     * @return
     */
    int addProject(Project project);

    /**
     * 判断项目名或编码是否存在
     * @param project 项目
     * @return
     */
    boolean checkNameAndCode(Project project);

    /**
     * 修改项目信息
     * @param project
     */
    void updateProject(Project project);

    /**
     * 删除项目
     * @param pid
     */
    void deleteProject(Integer pid);

    PagedResult query(String query,Integer page, Integer pageSize,String userId);

    List<Project> getAll();

    ProjectVo getProject(Integer projectId);

    List<ProjectSystem> getProjects(int hour);

    /**
     * 根据条件筛选项目记录
     * @param projectCode 项目编码，模糊查询
     * @param factoryId 工厂Id，查询该工厂下所有的项目
     * @param subFactoryId 车间Id，查询该车间下所有的项目
     * @param userId 用户Id，查询该用户拥有数据查看权限的所有的项目
     * @return
     */
    List<Project> listProject(String projectCode,String factoryId,String subFactoryId,String userId);

    /**
     * 根据车间Id查询该车间下所有的项目
     * @param subFactoryId
     * @return
     */
    List<Project> listProject(String subFactoryId);
}
